//
// Created by sjjmw on 3/24/2022.
//
#include "iostream"
#include "vector"
#include "list"
#include "algorithm"
#include "string"
#include "unordered_map"
#include "cmath"
#include<iomanip>
#include "string"
#include "map"


//用map来计数
//用vec来排序
void handle(int k){
    std::unordered_map<int,int> cnts;
//    std::vector<int> vec(k);
    for(int i=0;i<k;i++){
        int in;std::cin>>in;
        if(cnts.find(in)==cnts.end()){
            cnts[in]=1;
        }else{
            cnts[in]++;
        }
    }
    std::vector<int> px(cnts.size());
    int wi=0;
    for(auto&pair:cnts){
        px[wi]=pair.first;
        wi++;
    }
    std::sort(px.begin(),px.end());
    for(auto i:px){
        printf("%d %d\n",i,cnts[i]);
    }
}
int main(){
    int a,b,c;
    while (std::cin>>a){
        handle(a);
    }
    return 0;
}